package com.molichuxing.services.infrastructure.service;

import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.service.RootService;
import com.molichuxing.services.infrastructure.dto.request.create.ComplaintCreateDto;
import com.molichuxing.services.infrastructure.dto.request.modify.ComplaintModifyDto;
import com.molichuxing.services.infrastructure.dto.response.ComplaintDto;

/**
 * 
 * @author liyg
 * 用户投诉服务
 * 2019-08-13
 * 
 */
public interface ComplaintService extends RootService{

	/**
	 * 获取用户投诉详情
	 * 
	 * @param complaintId
	 *            投诉id
	 * @return
	 */
	 ComplaintDto getComplaint(Integer complaintId);
	 
	 /**
	  * 获取用户投诉详情
	  * 
	  * @param userId
	  *            用户id
	  * @return
	  */
	 ComplaintDto getComplaintByUserId(Integer userId);
	 
	 /**
	  * 获取投诉数量
	  * @param status
	  * @return
	  */
	 Long getCountByStatus(Integer status);
	 
	/**
	 * 编辑投诉
	 * 
	 * @param modifyDto
	 *            需要修改的数据实体
	 * @return
	 */
	Boolean modifyComplaint(ComplaintModifyDto modifyDto);
	
	/**
	 * 提交投诉信息
	 * 
	 * @param createDto
	 *            
	 * @return
	 */
	Boolean createComplaint(ComplaintCreateDto createDto);
	
	/**
	 * 获取投诉列表
	 * 
	 * @param map
	 *            参数
	 * @param key:id
	 *            Integer 用户id 非必填
	 * @param key:type
	 *            Integer 投诉方式 非必填
	 * @param key:status
	 *            Integer 投诉处理状态 非必填
	 * @param key:submitTime
	 *            String 投诉时间 非必填
	 * @param key:pageNum
	 *            Integer 当前页
	 * @param key:pageSize
	 *            Integer 每页显示条数
	 * @return
	 */
	Paged<ComplaintDto> getComplaintList(Map<String, Object> map);
}
